package com.it.tcp2;

import java.io.DataOutputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;

/**
 * 目标：完成TCP通信快速入门-客户端开发：实现多发多收
 */
public class Client {
    public static void main(String[] args) throws Exception {
        // 1.创建Socket对象，并同时请求与服务端程序的连接
        Socket socket = new Socket("127.0.0.1", 8888);

        // 2.从socket通信管道中得到一个字节输出流，用来发数据给服务端程序
        OutputStream os = socket.getOutputStream();

        // 3.把低级的字节输出流包装成数据输出流
        DataOutputStream dos = new DataOutputStream(os);

        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请说：");
            String msg = sc.nextLine();

            // 一旦发现用户输入的exit命令，就退出客户端
            if("exit".equals(msg)){
                System.out.println("欢迎下次光临！退出成功");
                dos.close();
                socket.close(); // 释放资源
                break; // 跳出死循环
            }

            // 4.开始写数据出去了
            dos.writeUTF(msg);

            // 把数据刷新出去；立即发送给服务端
            dos.flush();
        }
    }
}
